home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 17
/
CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso
/
CUCD
/
Programming
/
DiceSource
/
lib
/
memory
/
realloc.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-09-09
|
673b
|
42 lines
/*
* REALLOC.C
*
* (c)Copyright 1992-1997 Obvious Implementations Corp. Redistribution and
* use is allowed under the terms of the DICE-LICENSE FILE,
* DICE-LICENSE.TXT.
*/
#include <exec/types.h>
#include <exec/memory.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#define buf ((long *)vbuf)
void *
realloc(vbuf, bytes)
void *vbuf;
size_t bytes;
{
void *ptr = NULL;
int copy;
if (bytes <= 0 && buf) {
free(buf);
return(NULL);
}
if (buf) {
copy = buf[-1] - 8;
if (bytes <= copy)
return(buf);
}
ptr = malloc(bytes);
if (ptr && buf) {
movmem(buf, ptr, copy);
free(buf);
}
return(ptr);
}